package com.weigecoder.warehouse.service;

import com.weigecoder.warehouse.dto.AssignRoleDto;
import com.weigecoder.warehouse.entity.Result;
import com.weigecoder.warehouse.entity.Role;
import com.weigecoder.warehouse.page.Page;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @author 
* @description 针对表【role(角色表)】的数据库操作Service
* @createDate 2023-08-14 16:38:02
*/
@Service
public interface RoleService {

    //查询所有启用的角色
    List<Role> queryAllRole();

    //根据用户ID查询用户角色
    List<Role> queryRolesByUserId(int userId);

    //给用户分配角色
    void assignRole(AssignRoleDto assignRoleDto);

    //分页查询角色
    Page queryRolePage(Page page, Role role);

    //修改角色状态，启用或禁用角色
    Result updateRoleState(Role role);

    //添加角色
    Result saveRole(Role role);

    //删除角色
    void deleteRole(Integer roleId);

    //修改角色描述
    Result updateRoleDesc(Role role);

    //根据角色ID查询角色已分配的权限(菜单)
    List<Integer> queryAuthByRoleId(Integer roleId);

    List<Integer> queryAuthByUserId(Integer userId);
}
